# -*- coding:utf-8 -*-
# title           :
# description     :
# author          :Python超人/三月三提供
# date            :2024-05-01
# link            :https://gitcode.net/pythoncr/
# python_version  :3.9
# ==============================================================================
from 神笔码靓.码靓库.地理.地图数据 import 获取中国地图数据
from 神笔码靓.码靓库.地理.地图绘图板 import 地图绘图板
from 神笔码靓.神笔库 import 作品输出目录
from 神笔码靓.神笔库.元素库 import 文字元素
from 神笔码靓.神笔库.定义集 import *


class 中国地图绘图板(地图绘图板):
    文字调整 = {
        "内蒙古": lambda 字, 位置: 字.字符间距(40).字旋转(25).旋转(-25, 位置.中心点).平移(0, 60),
        "甘肃": lambda 字, 位置: 字.字符间距(100).水平基线对齐(文字水平基线对齐.起始点对齐).字旋转(-38).旋转(38, 位置.中心点).平移(-65, 0),
        # "陕西": lambda 字, 位置: 字.平移(10, 20),
        "河北": lambda 字, 位置: 字.平移(-20, 20),
        "江苏": lambda 字, 位置: 字.平移(10),
        "香港": lambda 字, 位置: 字.平移(5, 5),
        "重庆": lambda 字, 位置: 字.平移(0, 7),
        "澳门": lambda 字, 位置: 字.平移(-5, 5),
        "黑龙江": lambda 字, 位置: 字.字符间距(8).平移(0, 20),
        "广东": lambda 字, 位置: 字.平移(0, -10),
        "江西": lambda 字, 位置: 字.平移(-5),
        "辽宁": lambda 字, 位置: 字.字符间距(8).平移(8, -5),
        "新疆": lambda 字, 位置: 字.字符间距(80).平移(70, 10),
        "西藏": lambda 字, 位置: 字.字符间距(80).平移(50, 5),
        "青海": lambda 字, 位置: 字.字符间距(40).平移(20, -10),
        "四川": lambda 字, 位置: 字.字符间距(40).平移(12, -5),
        "云南": lambda 字, 位置: 字.字符间距(10).平移(5),
        "吉林": lambda 字, 位置: 字.字符间距(8).平移(2),
        "台湾": lambda 字, 位置: 字.字符间距(5).字旋转(-112).旋转(112, 位置.中心点).平移(4, -8),
        "陕西": lambda 字, 位置: 字.字符间距(35).字旋转(-102).旋转(102, 位置.中心点).平移(25, -8),
    }

    # 重新生成的颜色映射
    区域颜色 = {
        "北京": "#FF3300", "重庆": "#FF0080", "上海": "#FF8050", "天津": "#CC00FF", "内蒙古": "#66A5FF", "甘肃": "#FF9966",
        "陕西": "#A55A28", "河北": "#22AA55", "山西": "#E5B937", "辽宁": "#C05000", "吉林": "#C00050", "黑龙江": "#00CCFF",
        "江苏": "#88FF22", "浙江": "#FFD000", "安徽": "#FF55AA", "福建": "#CC4444", "江西": "#550099", "山东": "#FFFFCC",
        "河南": "#FFCC99", "湖北": "#FFA580", "湖南": "#FF9900", "广东": "#FF9966", "广西": "#FF7733", "海南": "#FF5500",
        "四川": "#FF4444", "贵州": "#FF00A0", "云南": "#CC00CC", "西藏": "#DD77EE", "青海": "#C02080", "宁夏": "#B28C8C",
        "新疆": "#994411", "台湾": "#A55A28", "香港": "#770000", "澳门": "#660000"
    }

    def 区域路径设置(self, 序号, 区域名称):
        if 区域名称 in self.区域颜色:
            return {"填充颜色": self.区域颜色[区域名称]}
        return {"填充颜色": "none"}

    def 区域名称设置(self, 区域名称):
        if 区域名称 in ["北京", "天津", "澳门", "香港", "上海"]:
            return {"字体大小": 6}
        if 区域名称 in ["宁夏", "重庆", "海南"]:
            return {"字体大小": 8}
        return {"字体大小": 10}

    def 区域文字调整(self, 区域名称: str, 区域文字元素: 文字元素, 位置信息):
        区域文字元素.阴影(偏移=(0.4, 0.4), 模糊度=0.5)
        if 区域名称 in self.文字调整:
            self.文字调整[区域名称](区域文字元素, 位置信息)


if __name__ == '__main__':
    中国地图数据 = 获取中国地图数据()
    作品文件路径 = 作品输出目录("中国地图")
    地图 = 中国地图绘图板(地图数据=中国地图数据, 作品文件路径=作品文件路径, 宽=800, 高=600)
    地图.完成()
